Distributed computing systems rely on service requests from a client to a server. In the software as a service model, the client is generally a non-resource-intensive thin client, such as a web browser, that makes service requests to a central server that provides the requested service. In a more basic example, the client can be a point of sale terminal that sends a payment approval request to a credit card processor. In either case, the client requires a response from the server in order to operate. If the server does not respond, the client may hang in a holding pattern waiting for the server to respond, or it may abort the operation and resend another request.
In complex distributed systems, servers may also act as clients in that they are unable to conduct all of the processing requested by a client, and therefore need to prepare their own service requests for an alternative server. In these situations, the server that originally receives the client's request can be referred to as an originating server. In this kind of system, the originating server and additional external server both need to process their own service request and provide a response before the client can continue its operations. Furthermore, in cases where a request cannot be serviced, the originating server and the client need to receive a response indicating that the system has failed before they can take steps to remedy the situation.
As the pace of modern life increases, tolerance for delay in distributed computing systems continues to decrease. Furthermore, distributed computing systems are replacing local processing systems through the appeal of outsourced costs associated with hardware and software maintenance and upkeep. However, for this advantageous trend to continue, the distributed systems need to perform just as rapidly as the systems they replaced. Therefore, minimizing the amount of time that is spent facilitating communication between the client and server, and an originating server and an external server is critical for the continued acceptance and success of distributed systems.